home *** CD-ROM | disk | FTP | other *** search
/ Amiga Times / AmigaTimes.iso / demos / programme / StormC / StormC Install-Script < prev    next >
Encoding:
Text File  |  1998-10-06  |  12.9 KB  |  485 lines

  1. ; $VER: StormC V1.1 Install Version 1.06 (22.7.96)
  2. ; Installations-Script - na, wofür wohl?
  3. ; (c) 1996 HAAGE & PARTNER Computer GmbH
  4.  
  5. (complete 0)
  6.  
  7. ; Die Versionsnummer und das Erstellungs-Datum der hier installierten
  8. ; Versionen.
  9.  
  10. (set stcpp-version "1.1")
  11. (set stcpp-date "(15 Juli 96)")
  12.  
  13. ;====================================================================
  14. ; Initialisierungen
  15.  
  16.  
  17. (set @default-dest "")
  18.  
  19. (set os-version (/ (getversion) 65536))
  20. (set os-13 (< os-version 36))
  21. (set os-20 (>= os-version 36))
  22. (set os-21 (>= os-version 38))
  23.  
  24. (set totalmem (database "total-mem")) ; Diese schöne Funktion vereinfacht einiges
  25.  
  26. ; Die Pfadnamen der Programme, die vom Installations-Skript aufgerufen werden.
  27.  
  28. ; Die Pfadnamen der einzelnen Quell-Dateien.
  29.  
  30. (set #binsource             (tackon (pathonly @icon) "StormSYS"))    ; Hier stehen die Ausführbaren Programme
  31. (set #includesource         (tackon (pathonly @icon) "INCLUDE"))     ; Hier stehen die Includes
  32. (set #envsource            (tackon (pathonly @icon) "ENV"))            ; Die Voreinstellungen
  33. (set #libsource            (tackon (pathonly @icon) "LIB"))            ; Hier stehen die Bibliotheken
  34. (set #wizlib               (tackon (pathonly @icon) "LIBS/Wizard.library")); Hier steht die Bibliohtek
  35. (set #samplesource        (tackon (pathonly @icon) "Examples"))    ; Hier stehen die Demo-Sourcen
  36. (set #manualsource        (tackon (pathonly @icon) "MANUAL"))        ; Hier steht die Dokumentation
  37. (set #toolssource       (tackon (pathonly @icon) "TOOLS"))        ; Hier stehen die Tools
  38. (set #flibsource        (tackon (pathonly @icon) "Fast-Ansi-Lib")) ; Hier steht die neue Ansi-lib
  39. (set #muilibsource      (tackon (pathonly @icon) "Mui-Class-Lib")) ; Hier steht die Mui Klassen-Library
  40. (set source-Liesmich     (tackon (pathonly @icon) "Liesmich"))        ; Die Liesmich Datei 
  41. (set source-readme        (tackon (pathonly @icon) "Readme"))        ; Die Liesmich Datei 
  42. (set source-italreadme     (tackon (pathonly @icon) "Leggimi"))        ; Die Liesmich Datei 
  43. (set source-ikon           (tackon (pathonly @icon) "StormCPP.info"))    ; Das Programm-Piktogramm
  44.  
  45.  
  46. (set #prp-copy-samples
  47.     "Kopiere die C und C++ Beispielprogramme")
  48. (set #hlp-copy-bin
  49.     "Anhand des Handbuches und der Beispiele können Sie sich sehr schnell in StormC einarbeiten")
  50. (set #prp-copy-env
  51.     "Kopiere die StormC Default-Piktogramme")
  52. (set #hlp-copy-env
  53.     "Die Piktogramme werden von der Projektverwaltung und vom Editor benötigt")
  54. (set #prp-copy-includes
  55.     "Kopiere die C++ Systemincludes")
  56. (set #hlp-copy-includes
  57.     "Die Includes werden vom Compiler-Preprozessor benötigt")
  58. (set #prp-copy-libs
  59.     "Kopiere die Linker-Bibliotheken")
  60. (set #hlp-copy-libs
  61.     "Die Bibliotheken werden vom Linker benötigt")
  62. (set #prp-copy-manual
  63.     "Kopiere die Dokumentation")
  64. (set #hlp-copy-manual
  65.     "Eine Amiga-Guide-Datei zu StormC")
  66. (set #prp-copy-bin
  67.     "Kopiere die Ausführbaren Dateien des Compilersystems")
  68. (set #hlp-copy-bin
  69.     "Bei der allerersten Installation sollten Sie auch alle Dateien kopieren")
  70. (set #prp-copy-tools
  71.     "Kopiere die Screen-Tools")
  72. (set #hlp-copy-tools
  73.     "Der Pubscreen-Manager zu StormC")
  74. (set #prp-copy-wizlib
  75.    "Kopiere die Wizard.Library")
  76. (set #hlp-copy-wizlib
  77.    "Sie ist für die sehr kurzen Programme verantwortlich!")
  78. (set #prp-copy-fastlib
  79.    "Kopieren die FAST-ANSI-Library")
  80. (set #hlp-copy-fastlib
  81.    "Mit ihr können sehr kurze ANSI-C Programme erzeugt werden")
  82. (set #prp-copy-muilib
  83.    "Kopiere die Mui Klassen-Bibliothek")
  84. (set #hlp-copy-muilib
  85.    "Die Bibliothek ermöglicht die Programmierung von MUI in C++")
  86.  
  87. ; Die Dateigrößen
  88.  
  89. (set size-stormcpp            24000)
  90. (set size-stormc                437000)
  91. (set size-stormed                210000)
  92. (set size-stormshell              340000)
  93. (set size-stormrun            220000)
  94. (set size-stormasm            36000)
  95. (set size-stormpics            50000)
  96. (set size-stormlex            100000)
  97. (set size-libs                    520000)
  98. (set size-inlcudes            270000)
  99. (set size-demos                70000)
  100. (set size-fastlib          130000)
  101. (set size-muilib           480000)
  102.  
  103. (set size-komplett    ( + size-fastlib size-muilib size-stormrun size-stormasm size-stormcpp size-stormc size-stormed size-stormshell size-stormpics size-stormlex size-libs size-inlcudes size-demos))
  104.  
  105. ; ----------------------------- Prozeduren ------------------------------
  106.  
  107. (Procedure Make_Folder
  108.     (
  109.     (set folder (tackon folder "StormC"))
  110.     (if (= (exists folder) 0)
  111.        (
  112.        (makedir folder (infos))
  113.        )
  114.     ))
  115. )
  116.  
  117. ;=====================================================================================
  118. ; Beginn der Installation
  119. ;=====================================================================================
  120.  
  121. ; Eine kleine Einleitung, gefolgt vom Startbild des Installers.
  122.  
  123. (set act-user-level @user-level)
  124. (user 1)
  125.  
  126. (message (cat    "\nWillkommen bei der Installation der \n\n\"StormC-Demoversion "
  127.                      stcpp-version " vom "stcpp-date "\"!\n\n"
  128.                     "Dieses Skript kopiert die verschiedenen Dateien, "
  129.                     "aus denen sich das Compilersystem zusammensetzt, "
  130.                     "auf Ihre Festplatte.\n\n"
  131.                "© 1996 HAAGE&PARTNER Computer GmbH"))
  132.  
  133. (user act-user-level)
  134. (welcome)
  135.  
  136. (complete 5)
  137.  
  138. (set act-user-level @user-level)
  139. (user 1)
  140.  
  141.  
  142. ;    Alte Version prüfen und entsprechende Warnung ausgeben! **************************************************************
  143.  
  144. (set folder "WORK:StormC")
  145.  
  146. (if (exists "StormC:" (noreq))
  147.     (
  148.         (message (cat    "\nAuf Ihrer Festplatte befindet sich bereits eine\n"
  149.                         "Installation von StormC! Wählen Sie bitte die über-\n"
  150.                         "geordnete Schublade oder das jeweilige Laufwerk an,\n"
  151.                         "wenn Sie ihr altes System aktualisieren möchten!"))
  152.  
  153.     (set folder (getassign "STORMC"))
  154.     )
  155. )
  156.  
  157. (set cmpstr (getassign "STORMC"))
  158.  
  159. (user act-user-level)
  160.  
  161. (if (= @user-level 0)
  162.     (
  163.     (user 1)
  164.     (message (cat    "Im Einsteiger-Modus wird davon ausgegangen, daß Storm C auf "
  165.                         "einer Festplatte installiert wird, auf der noch mindestens "
  166.                         "ca. 6 MByte freier Speicherplatz verfügbar sind. Sie werden "
  167.                         "dazu im nächsten Fenster nach dem Namen der gewünschten "
  168.                         "Schublade gefragt.\n\n"
  169.                         "Alle weiteren Angaben werden dann vom Installations-Skript "
  170.                         "möglichst genau an Ihr System angepaßt."))))
  171.  
  172. (set ok 0)
  173. (while (not ok)
  174.     (set folder
  175.         (askdir
  176.             (prompt (cat "\n"
  177.                              "Auswahl des Pfades für die Compiler-Installation.\n"
  178.                              "Eine Schublade mit dem Namen StormC wird automatisch erzeugt!"))
  179.             (help (cat    "    Sie können über das Symbol 'Laufwerke anz.' (bzw. 'Show drives') "
  180.                             "eine Übersicht über alle Laufwerke Ihres Amiga anfordern; aus "
  181.                             "dieser Übersicht sollten Sie nur die oberen, nicht farblich "
  182.                             "gekennzeichneten Einträge auswählen.\n"
  183.                             "    Typische sinnvolle Namen sind z.B. \"WORK:\", \"HD0:\" oder \"DH0:\"; "
  184.                             "nicht verwenden sollten Sie Namen wie \"DF0:\", \"DF1:\", "
  185.                             "\"DF2:\", \"DF3:\", \"RAD:\", \"RAM:\", \"System2.0:\", "
  186.                             "\"WB_2.x:\", \"System3.0:\" oder \"WB_3.x:\"!"
  187.                             "\n\n"
  188.                             "Storm C kann nur in eine Schublade nicht aber auf eine "
  189.                             "Partition direkt installiert werden! Wenn Sie also nur ein Laufwerk "
  190.                             "für die Installation auswählen, wird Ihnen eine Fehlermeldung angezeigt!\n\n"
  191.                             @askdir-help))
  192.             (default folder)
  193.             (disk)
  194.         )
  195.     )
  196.  
  197.    (Make_Folder)    ; // Automatisch neues Verzeichnis anlegen!
  198.  
  199.     ; Ist der Dateiname leer oder endet mit einem ':' oder existiert unter
  200.     ; diesem Namen kein Verzeichnis, wird eine Fehlermeldung angezeigt; andernfalls
  201.     ; kann die Auswahl-Schleife beendet werden.
  202.     (if (or (or (or (<= (strlen folder) 0) (= (substr folder (- (strlen folder) 1) 1) ":")) (= (exists folder (noreq)) 0)) (= (getdiskspace folder) -1))
  203.         (message (cat    "\nBei Ihrer Auswahl \"" folder "\" handelt es sich nicht um "
  204.                             "eine gültige Schublade!\n\n"
  205.                             "Sie können über das Symbol 'Laufwerke anz.' (bzw. 'Show drives') "
  206.                             "eine Übersicht über alle Laufwerke Ihres Amiga anfordern; aus "
  207.                             "dieser Übersicht sollten Sie nur die oberen, nicht farblich "
  208.                             "gekennzeichneten Einträge auswählen.\n"
  209.                             "Über den Schalter \"Neue Schublade anlegen...\" können Sie ein neue "
  210.                                "Schublade erzeugen. Diese neue Schublade\nwird auf der Partition "
  211.                                "angelegt, die Sie soeben betrachten."))
  212.         ;else
  213.         (
  214.             (set freediskspace (getdiskspace folder))    ; Der freie Speicher auf diesem Medium
  215.  
  216.             (if (< freediskspace size-komplett)
  217.                 (
  218.                 (user 1)
  219.                 (message (cat    "\nAuf der ausgewählten Festplattenpartition "
  220.                                             "steht nicht genügend freier Speicher für die "
  221.                                             "komplette Installation des Compilersystems zur Verfügung.\n\n"
  222.                                             "Freier Speicher " freediskspace "!\n"
  223.                                             "Benötigter Speicher " size-komplett "!\n\n"
  224.                                             "Bitte wählen Sie eine andere Partition, auf "
  225.                                             "der entsprechende Kapazitäten vorhanden sind!"))                
  226.                 )
  227.             ;else
  228.             (set ok 1)
  229.             )
  230.         )
  231.     )
  232. )
  233.  
  234. (makeassign "STORMC")
  235.  
  236. (user act-user-level)
  237.  
  238. (set @default-dest folder)    ; Die Zuweisung ist sehr wichtig!
  239.  
  240. (set destbin    (tackon folder "StormSYS"))
  241. (if                                          ; Compiler-Verzeichnis erzeugen
  242.     (= (exists destbin) 0)
  243.     (makedir destbin (infos))
  244. )
  245.  
  246. (set destdemo    (tackon folder "Examples"))
  247. (if                                          ; Demo-Verzeichnis erzeugen
  248.     (= (exists destdemo) 0)
  249.     (makedir destdemo (infos))
  250. )
  251. (set destinclude (tackon folder "Include"))
  252. (if                                          ; Includes-Verzeichnis erzeugen
  253.     (= (exists destinclude) 0)
  254.     (makedir destinclude)
  255. )
  256.  
  257. (set destlib    (tackon folder "Lib"))
  258. (if                                          ; Libraries-Verzeichnis erzeugen
  259.     (= (exists destlib) 0)
  260.     (makedir destlib)
  261. )
  262.  
  263. (set destmanual    (tackon folder "Manual"))
  264. (if                                          ; Dokumentations-Verzeichnis erzeugen
  265.     (= (exists destmanual) 0)
  266.     (makedir destmanual (infos))
  267. )
  268.  
  269. (set desttools    (tackon folder "Tools"))
  270.  
  271. (if                                          ; Tools-Verzeichnis erzeugen
  272.     (= (exists desttools) 0)
  273.     (makedir desttools (infos))
  274. )
  275.  
  276. (set fansilib    (tackon folder "Fast-ANSI-Lib"))
  277.  
  278. (if                                          ;Fastansilib-Verzeichnis erzeugen
  279.     (= (exists fansilib) 0)
  280.     (makedir fansilib (infos))
  281. )
  282.  
  283. (set muilib    (tackon folder "MUI-Class-Lib"))
  284.  
  285. (if                                          ;Muilib-Verzeichnis erzeugen
  286.     (= (exists muilib) 0)
  287.     (makedir muilib (infos))
  288. )
  289.  
  290. (complete 5)
  291.  
  292. ; Liesmich Datei auf Festplatte kopieren!
  293.  
  294. (copyfiles
  295.     (source source-Liesmich)
  296.     (dest folder)
  297.     (infos)
  298. )
  299.  
  300. (copyfiles
  301.     (source source-readme)
  302.     (dest folder)
  303.     (infos)
  304. )
  305.  
  306. (copyfiles
  307.     (source source-italreadme)
  308.     (dest folder)
  309.     (infos)
  310. )
  311.  
  312. (complete 8)
  313.  
  314. (set morerunpath "run C/More Liesmich")
  315.  
  316. (run morerunpath)    ; Liesmich laden
  317.  
  318. (complete 10)
  319.  
  320. (set destinfo    (tackon folder "StormCPP.info"))
  321. (if                                          ; Projekt-Ikon erzeugen
  322.     (= (exists destinfo) 0)
  323.     (copyfiles
  324.         (source source-ikon)
  325.         (dest folder)
  326.     )
  327. )
  328.  
  329. (complete 15)
  330.  
  331. (copyfiles                                            ; Beispiele kopieren
  332.     (prompt #prp-copy-samples)
  333.     (help #hlp-copy-samples)
  334.     (source #samplesource)
  335.     (dest destdemo)
  336.     (all)
  337.     (confirm)
  338. )
  339.  
  340. (complete 20)
  341.  
  342. (copyfiles                                            ; Settings kopieren
  343.     (prompt #prp-copy-env)
  344.     (help #hlp-copy-env)
  345.     (source #envsource)
  346.     (dest "ENVARC:")
  347.     (all)
  348.     (confirm)
  349. )
  350.  
  351. (complete 22)
  352.  
  353. (copyfiles                                            ; Settings kopieren
  354.     (prompt #prp-copy-env)
  355.     (help #hlp-copy-env)
  356.     (source #envsource)
  357.     (dest "ENV:")
  358.     (all)
  359.     (confirm)
  360. )
  361.  
  362. (complete 25)
  363.  
  364. (copyfiles                                            ; Compiler kopieren
  365.     (prompt #prp-copy-bin)
  366.     (help #hlp-copy-bin)
  367.     (source #binsource)
  368.     (dest destbin)
  369.     (all)
  370.     (confirm)
  371. )
  372.  
  373. (complete 40)
  374.  
  375. (copyfiles                                            ; Includes kopieren
  376.     (prompt #prp-copy-includes)
  377.     (help #hlp-copy-includes)
  378.     (source #includesource)
  379.     (dest destinclude)
  380.     (all)
  381.     (confirm)
  382. )
  383.  
  384. (complete 60)
  385.  
  386. (copyfiles                                            ; Libs kopieren
  387.     (prompt #prp-copy-libs)
  388.     (help #hlp-copy-libs)
  389.     (source #libsource)
  390.     (dest destlib)
  391.     (all)
  392.     (confirm)
  393. )
  394.  
  395. (complete 80)
  396.  
  397. (copyfiles                                            ; Manual kopieren
  398.     (prompt #prp-copy-manual)
  399.     (help #hlp-copy-manual)
  400.     (source #manualsource)
  401.     (dest destmanual)
  402.     (all)
  403.     (confirm)
  404. )
  405.  
  406. (complete 90)
  407.  
  408.  
  409. (copyfiles                                            ; Tools kopieren
  410.     (prompt #prp-copy-tools)
  411.     (help #hlp-copy-tools)
  412.     (source #toolssource)
  413.     (dest desttools)
  414.     (all)
  415.     (confirm)
  416. )
  417.  
  418. (complete 91)
  419.  
  420.  
  421. (copyfiles                                            ; Fastlib kopieren
  422.     (prompt #prp-copy-fastlib)
  423.     (help #hlp-copy-fastlib)
  424.     (source #flibsource)
  425.     (dest fansilib)
  426.     (all)
  427.     (confirm)
  428. )
  429.  
  430. (complete 92)
  431.  
  432. (copyfiles                                            ; Muilib kopieren
  433.     (prompt #prp-copy-muilib)
  434.     (help #hlp-copy-muilib)
  435.     (source #muilibsource)
  436.     (dest muilib)
  437.     (all)
  438.     (confirm)
  439. )
  440.  
  441. (complete 93)
  442.  
  443.  
  444. (copylib                                            ; Wizard.library kopieren
  445.     (prompt #prp-copy-wizlib)
  446.     (help #hlp-copy-wizlib)
  447.     (source #wizlib)
  448.     (dest "LIBS:")
  449.     (confirm)
  450. )
  451.  
  452. (complete 96)
  453.  
  454.  
  455. ; ------- STARTUP ÄNDERN
  456.  
  457. (set command1 (cat  "ASSIGN STORMC: " folder ""))
  458.  
  459. (set command1.txt
  460.     (cat 
  461.          "\n\n\nUm mit StromC richtig arbeiten zu "
  462.       "können muß eine Änderung an der User-Startup vorgenommen werden.\n\n"
  463.          command1
  464.     )
  465. )
  466.  
  467. (startup "StormC"
  468.     (prompt command1.txt)
  469.     (help #help-startup)
  470.     (command command1)
  471. )
  472.  
  473. (makeassign "STORMC")
  474. (makeassign "STORMC" folder)
  475.  
  476. (complete 100)
  477.  
  478. ; ------- FERTIG
  479.  
  480. (message (cat 
  481.     "\nInstallation des StormC Compilers beendet.\n"
  482.    "Falls die Zeilen:\n" command1 "\nnicht in Ihre Startup-Sequence bzw. "
  483.    "User-Startup eingefügt wurde, dann holen Sie dies bitte nach.\n\n"
  484.    "\n\nWir wünschen ihnen viel Erfolg bei der Lösung Ihrer Programmieraufgaben!")
  485. )